package com.wonders.hisdoctor.station.project.base.domain;

import com.wonders.his.common.utils.validator.group.InsertGroup;
import com.wonders.his.common.utils.validator.group.PrimaryGroup;

import java.util.Date;

import com.wonders.his.common.utils.validator.group.UpdateGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

import lombok.Data;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 * <p>患者过敏信息</p>
 * <p>db_table: PAT_ALLERGY</p>
 *
 * @author zhaogongming
 * @date 2021/03/22
 */
@ApiModel("患者过敏信息")
@Accessors(chain = true)
@Data
@ToString
@TableName("PAT_ALLERGY")
public class PatAllergy implements Serializable {

    private static final long serialVersionUID = 8870137681471027438L;

    /**
     * `主键` db_field: PAT_ALLERGY_ID; desc: 过敏信息id
     */
    @ApiModelProperty("过敏信息id")
    @TableId
    @NotNull(message = "过敏信息id不能为空", groups = PrimaryGroup.class)
    @TableField("PAT_ALLERGY_ID")
    private Long patAllergyId;

    /**
     * db_field: ALLERGY_TYPE_CODE; desc: 过敏类型代码
     */
    @ApiModelProperty("过敏类型代码")
    @TableField("ALLERGY_TYPE_CODE")
    private String allergyTypeCode;

    /**
     * db_field: ALLERGY_TYPE_NAME; desc: 过敏类型名称
     */
    @ApiModelProperty("过敏类型名称")
    @NotBlank(message = "过敏类型名称不能为空", groups = InsertGroup.class)
    @TableField("ALLERGY_TYPE_NAME")
    private String allergyTypeName;

    /**
     * db_field: ALLERGY_CODE; desc: 过敏项目代码
     */
    @ApiModelProperty("过敏项目代码")
    @TableField("ALLERGY_CODE")
    private String allergyCode;

    /**
     * db_field: ALLERGY_NAME; desc: 过敏项目名称
     */
    @ApiModelProperty("过敏项目名称")
    @TableField("ALLERGY_NAME")
    private String allergyName;

    /**
     * db_field: SEVERITY; desc: 严重程度
     */
    @ApiModelProperty("严重程度")
    @TableField("SEVERITY")
    private String severity;

    /**
     * db_field: SYMPTOM_DESC; desc: 症状描述
     */
    @ApiModelProperty("症状描述")
    @TableField("SYMPTOM_DESC")
    private String symptomDesc;

    /**
     * db_field: STATUS; desc: 状态：0 作废 1 正常
     */
    @ApiModelProperty("状态：0 作废 1 正常")
    @TableField("STATUS")
    private String status;

    /**
     * db_field: REGISTER_TIME; desc: 登记时间
     */
    @ApiModelProperty("登记时间")
    @TableField("REGISTER_TIME")
    private Date registerTime;

    /**
     * db_field: REGISTER_NO; desc: 登记人编号
     */
    @ApiModelProperty("登记人编号")
    @NotBlank(message = "登记人编号不能为空", groups = InsertGroup.class)
    @TableField("REGISTER_NO")
    private String registerNo;

    /**
     * db_field: REGISTER_NAME; desc: 登记人姓名
     */
    @ApiModelProperty("登记人姓名")
    @NotBlank(message = "登记人姓名不能为空", groups = InsertGroup.class)
    @TableField("REGISTER_NAME")
    private String registerName;

    /**
     * db_field: CANCEL_NO; desc: 作废人编号
     */
    @ApiModelProperty("作废人编号")
    @NotBlank(message = "作废人编号不能为空", groups = UpdateGroup.class)
    @TableField("CANCEL_NO")
    private String cancelNo;

    /**
     * db_field: CANCEL_NAME; desc: 作废人姓名
     */
    @ApiModelProperty("作废人姓名")
    @NotBlank(message = "作废人姓名不能为空", groups = UpdateGroup.class)
    @TableField("CANCEL_NAME")
    private String cancelName;

    /**
     * db_field: CANCEL_TIME; desc: 作废时间
     */
    @ApiModelProperty("作废时间")
    @TableField("CANCEL_TIME")
    private Date cancelTime;

    /**
     * db_field: PATIENT_ID; desc: 病人标识号
     */
    @ApiModelProperty("病人标识号")
    @NotBlank(message = "作废人姓名不能为空", groups = InsertGroup.class)
    @TableField("PATIENT_ID")
    private String patientId;

    /**
     * db_field: ALLERGY_RESULT; desc: 登记结果：1 阴性  2 阳性
     */
    @ApiModelProperty("登记结果：1 阴性  2 阳性")
    @NotBlank(message = "登记结果不能为空", groups = InsertGroup.class)
    @TableField("ALLERGY_RESULT")
    private String allergyResult;

}